In the field of wireless communications, Multiple Input Multiple Output (MIMO) techniques are gaining interest because of the high data rates they can achieve. In MIMO communications, transmitted data symbols are distributed over multiple transmit antennas, and the received symbols are distributed over multiple receive antennas. Because each receive antenna senses a composite signal with contributions from each of the transmit antennas, signal processing is needed to reconstruct the original data symbols which were transmitted. In many cases, this signal processing relies upon a channel matrix H, which expresses the change in amplitude and phase undergone by a constant-valued pulse in transit from each transmit antenna to each receive antenna. H is generally estimated from measurements of pilot signals.
A maximum likelihood (ML) detector with a posteriori probability (APP) information has proven very effective in MIMO receivers. This form of detection is especially useful because it provides so-called “soft” information about the decoded bits. Soft-input decoders, such as turbo decoders, use the soft information to correct errors in suitably coded bit streams. Typically, the soft data associated with a given detected bit consists of an eight-bit word which expresses a log-likelihood ratio (LLR), on a scale of −127 to +127, of the two possible outcomes (i.e., logical 1 or logical 0) of detecting the given bit.
At the transmitter, according to some MIMO schemes, a data word x consisting of a binary string is mapped to a vector symbol s. The vector symbol has as many components as there are transmit antennas. Each component is selected from an appropriate constellation of (possibly complex) symbols, such as a QPSK or QAM constellation. Herein, I refer to such symbols as scalar symbols. In transmission, each transmit antenna sends a respective one of the selected scalar symbols.
The antenna responses at the receiver are symbolized by the vector y, which contains a respective component from each of the receive antennas.
The effect of the propagation channel is modeled by the equation y=Hs+n, wherein n is a vector that represents additive noise.
The object of ML-APP detection is, given y, to determine that value of s (or, equivalently, of x) which minimizes the cost function J=∥Hs−y∥2 as well as determine the LLRs for each for the bits in the data word x. The search for the minimizing value of s is constrained to the lattice defined by the discrete scalar symbols of the constellation.
Various methods have been proposed for conducting the search for the minimizing value of s. Although exhaustive searching can lead to extremely low bit-error rates (BERs), it becomes intractably complex for reasonably sized constellations when there are more than two or three transmit antennas. Therefore, other methods have been proposed which perform less than an exhaustive search.
One such method is the sphere decoder, which has been described, for example, in David Garrett et al., “APP Processing for High Performance MIMO Systems,” in Proc. Custom Integrated Circuits Conference, September 2003, pp. 271-274; and David Garrett et al., “Silicon Complexity for Maximum Likelihood MIMO Detection using Spherical Decoding,” to appear in IEEE Journal on Solid-State Circuits, Summer 2004.
The sphere decoder is also described in the above-cited U.S. patent application Ser. No. 10/389,690. I hereby incorporate the entirety of said patent application Ser. No. 10/389,690 herein by reference.
Each scalar symbol transmitted from an antenna is meant to convey a portion of the binary string x. For a given received signal vector y, the sphere decoder conducts a tree search. Each level of the tree corresponds to a respective one of the transmit antennas in accordance with an ordering that has been imposed on them. At each level of the tree, there are as many branches per node as there are scalar symbols for the pertinent antenna to choose from. Thus, a path from the root of the tree to a leaf will accrue a portion of a binary string at each node, and each leaf of the tree corresponds to one of the candidates for the full string x.
The sphere decoder does not consider every leaf of the tree. Instead, a radius r is chosen. Along with the string portion that is accrued at each node, a corresponding contribution to the cost function J is also accrued. If, at a given node, J (as accrued to that point) is found to exceed r, the nodes that are children to the given node are declared outside the search radius and are not considered. As a result, great reductions in complexity relative to the exhaustive search can be achieved.
Still further reductions in complexity can be achieved if the sphere is permitted to shrink. That is, each time a candidate string is found that satisfies the condition J<r, the radius is set to a smaller value.
As with other types of ML-APP detection, the sphere decoder returns soft data that is useful in iterative decoding of the output binary string. However, it has been observed that because the scope of the search is often drastically cut back, the quality of the soft data can be impaired. Thus, there has been a need for a detection method that enjoys the benefits of sphere decoding while preserving the quality of soft data.